//package com.yunhe.common.service.base;
//
//import com.yunhe.common.domain.base.AlarmStatus;
//import com.yunhe.common.exception.ArgumentErrorException;
//import com.yunhe.common.exception.ObjectNotFoundException;
//import com.yunhe.common.exception.UniqueConstraintsException;
//import com.yunhe.common.model.PageParam;
//import com.yunhe.common.model.base.AlarmStatusDTO;
//import org.springframework.transaction.annotation.Transactional;
//
//import java.util.List;
//import java.util.Map;
//import java.util.Optional;
//
///**
// * 告警状态Service
// * @desc 告警状态服务类定义
// * @author duanxiaoyong
// */
//public interface AlarmStatusService {
//
//    /**
//     * 新增告警状态
//     * @param alarmStatus 告警状态对象
//     */
//    @Transactional
//    AlarmStatusDTO createAlarmStatus(AlarmStatus alarmStatus)
//            throws ArgumentErrorException, UniqueConstraintsException;
//
//    @Transactional
//    List<AlarmStatusDTO> createAlarmStatus(List<AlarmStatus> alarmStatusList)
//            throws ArgumentErrorException, UniqueConstraintsException;
//
//    /**
//     * 删除告警状态
//     * @param alarmStatusId 告警状态ID
//     */
//    @Transactional
//    void deleteAlarmStatus(Long alarmStatusId);
//
//    /**
//     * 更新告警状态（更新全部字段）
//     * @param alarmStatus 告警状态对象
//     */
//    @Transactional
//    AlarmStatusDTO updateAlarmStatus(AlarmStatus alarmStatus)
//            throws ArgumentErrorException, UniqueConstraintsException, ObjectNotFoundException;
//
//    /**
//     * 更新告警状态（更新指定字段）
//     * @param alarmStatusId 告警状态ID
//     * @param code 代码
//     * @param name 编号
//     * @param title 标题
//     * @param sn 排序序号
//     * @param activity 是否可用
//     * @param bit 警告位
//     */
//    @Transactional
//    AlarmStatusDTO updateAlarmStatus(Long alarmStatusId,
//                                  Optional<Long> code,
//                                  Optional<String> name,
//                                  Optional<String> title,
//                                  Optional<Long> sn,
//                                  Optional<Boolean> activity,
//                                  Optional<Long> bit,
//                                  Optional<String> devTitle,
//                                  Optional<String> condition,
//                                  Optional<Boolean> alarm,
//                                  Optional<Double> limitValue,
//                                  Optional<Long> stationId,
//                                  Optional<Long> alarmTypeCode,
//                                  Optional<Long> alarmLevelCode)
//            throws ArgumentErrorException, ObjectNotFoundException, UniqueConstraintsException;
//
//    /**
//     * 根据ID获得告警状态对象
//     * @param id 状态ID
//     */
//    AlarmStatusDTO findByAlarmStatusId(Long id);
//
//    /**
//     * 根据代码获得告警状态对象
//     * @param code 代码
//     */
//    AlarmStatusDTO findByCode(Long code);
//
//    /**
//     * 根据编号获得告警状态对象
//     * @param name 编号
//     */
//    AlarmStatusDTO findByName(String name);
//
//    /**
//     * 根据编号获得告警状态对象
//     * @param id ID
//     */
//    AlarmStatusDTO findById(Long id);
//
//    /**
//     * 获得全部告警状态对象
//     */
//    Iterable<AlarmStatusDTO> findAlarmStatus(List<Long> stationIds, String queryStr, PageParam pageRequest);
//
////    /**
////     * 根据代码绑定告警类型
////     * @param code 告警状态代码
////     * @param alarmTypeCode 告警类型代码
////     */
////    @Transactional
////    void bindAlarmTypeByCode(Long code, Long alarmTypeCode)
////            throws DatabaseProcessException;
////
////    /**
////     * 根据代码解绑告警类型
////     * @param code 告警状态代码
////     * @param alarmTypeCode 告警类型代码
////     */
////    @Transactional
////    void unbindAlarmTypeByCode(Long code, Long alarmTypeCode)
////            throws DatabaseProcessException;
////
////    /**
////     *更新告警类型（根据代码）
////     * @param code 代码
////     * @param alarmTypeCodes 告警类型代码
////     */
////    void updateAlarmTypeByCode(Long code, List<Long> alarmTypeCodes)
////            throws DatabaseProcessException;
//
//    /**
//     * 根据点号获取告警状态 点号列表
//     * @param pointNumberList
//     */
//    Map<Long, List<String>> getAlarmStatusByPointNumber(List<Long> pointNumberList)
//            throws ObjectNotFoundException;
//
//    /**
//     * 查询全部对应的告警状态
//     */
//    Map<Long, Map<Long, String>> findAll();
//
//    String getFormat(Long id);
//
//    Double getRealValue(Long id);
//
//    String getTypeById(Long id);
//
//    /**
//     * 批量更新告警级别
//     * @param alarmLevelId 告警级别代码
//     * @param idList 异常名称ID列表
//     */
//    void updateAlarmLevel(Long alarmLevelId, List<Long> idList);
//
//}
